Diretriz: Características de um repositório para o projeto
Um repositório armazena todas as versões de diretórios e arquivos do projeto, bem como todos os dados e metadados derivados que estejam associados a esses diretórios e arquivos.
Relacionamentos
Descrição Principal

O repositório do projeto pode ser um ponto de falha central para todos os ativos, portanto, ele precisa ser confiável, tolerante a falhas e escalonável para acomodar dados, além disso, precisa apresentar um alto nível de desempenho para não retardar o desenvolvimento do produto. As principais considerações de hardware, em ordem de prioridade, sobre o repositório do projeto são as seguintes:

  • Requisitos de memória: A memória é uma das maneiras menos onerosas de aprimorar o desempenho de uma ferramenta de gerenciamento de configuração. Uma regra prática para saber a quantidade de memória principal necessária na máquina do servidor é somar todo o espaço do banco de dados utilizado pelo repositório do projeto e dividi-lo por dois. Por exemplo, 1 MB de memória principal deve ser suficiente para permitir o armazenamento em cache e a gravação de dados em segundo plano para 2 MB de espaço de banco de dados. A suposição é que metade dos dados contidos no repositório do projeto será ativamente acessada a qualquer momento;
  • Requisitos de entrada/saída de disco: O segundo gargalo mais provável de desempenho no ambiente de gerenciamento de configuração é a velocidade em que os dados podem ser gravados no disco. As operações intensivas de leitura/gravação são check-in, check-out e criação de baseline. É recomendável que haja um controlador exclusivo e um canal por disco;
  • Largura de banda da rede: Como a ferramenta de gerenciamento de configuração geralmente é um aplicativo distribuído, possuir confiabilidade e capacidade de rede adequadas são necessárias para um bom desempenho. A recomendação é colocar máquinas que atuem como hosts do repositório do projeto e das visões na mesma sub-rede. Se a rede local (LAN) estiver muito saturada (como indicam os timeouts e os tempos de resposta lentos), a ideia é aumentar a capacidade da rede ou adicionar uma sub-rede para o host da ferramenta;
  • Espaço em disco no repositório do projeto: Dependendo do tamanho de um projeto, pode haver vários repositórios do projeto e cada um com milhares de arquivos e diretórios. O número de arquivos contido em um determinado repositório dependerá do tamanho da máquina em que o servidor do repositório está sendo executado e do número de usuários que acessará os dados simultaneamente. Um repositório de projeto ativo para desenvolvimento de código de leitura/gravação pode conter menos elementos que um repositório menos volátil que não tenha o mesmo nível de tráfego de usuário. A capacidade prevista para um repositório de projeto para desenvolvimento de software é de aproximadamente 3.000 a 5.000 elementos. Uma boa regra geral é reservar espaço em disco para o crescimento e ter cerca de 50% de espaço livre, alocando 2 GB de armazenamento para cada repositório do projeto.

Dicas:  O repositório do projeto deve estar em um servidor exclusivo. Isso significa que o servidor de repositórios do projeto não deve ser utilizado para:

  • Compilações, builds ou testes;
  • Executar outras ferramentas de terceiros;
  • Um servidor de e-mail;
  • Um servidor Web.
Adaptado de MDS, Metodologia de Desenvolvimento de Sistemas - Ministério da Cultura, 2008.